hvm: Fix %cr4 handling in HAP paging mode.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Wed, 8 Aug 2007 12:18:07 +0000 (13:18 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Wed, 8 Aug 2007 12:18:07 +0000 (13:18 +0100)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/hvm/hvm.c

index c5294f6334ffa7b6815c05b3abc91c98dd847332..c9d15e00f2aded31aff33041026fdf7d34b13b11 100644 (file)
@@ -585,9 +585,10 @@ int hvm_set_cr4(unsigned long value)
 
     old_cr = v->arch.hvm_vcpu.guest_cr[4];
     v->arch.hvm_vcpu.guest_cr[4] = value;
-    v->arch.hvm_vcpu.hw_cr[4] = value | HVM_CR4_HOST_MASK;
+    v->arch.hvm_vcpu.hw_cr[4] = HVM_CR4_HOST_MASK;
     if ( paging_mode_hap(v->domain) )
         v->arch.hvm_vcpu.hw_cr[4] &= ~X86_CR4_PAE;
+    v->arch.hvm_vcpu.hw_cr[4] |= value;
     hvm_update_guest_cr(v, 4);
   
     /* Modifying CR4.{PSE,PAE,PGE} invalidates all TLB entries, inc. Global. */